// 元组 Tuple
// 元组类型允许表示一个已知元素数量和类型的数组，各元素的类型不必相同。 
// 比如，你可以定义一对值分别为string和number类型的元组。

// // Declare a tuple type
// let x: [string, number];
// // Initialize it
// x = ['hello', 10]; // OK

// console.log(x);


// for (let i = 0; i < 10 ; i++) {
//     setTimeout(function() {console.log(i); }, 100 * i);
// }

// let o = { a11: "baz", b11: 101 }
// // 别名a111 别名b111         此处string number为类型 写法很奇怪对不对
// let  {a11:a111, b11:b111 }:{a11:string ,b11:number} = o;
// console.log(a111);


interface SquareConfig {
    color?: string;
    width?: number;
  }
  
  function createSquare(config: SquareConfig): {color: string; area: number} {
    let newSquare = {color: "white", area: 100};
    if (config.color) {
      newSquare.color = config.color;
    }
    if (config.width) {
      newSquare.area = config.width * config.width;
    }
    return newSquare;
  }
  
  let mySquare = createSquare({color: "black"});